package encode;



import java.io.UnsupportedEncodingException;

/**
 * Created by User on 2017/10/27.
 */
public class Encode {
    public static void main(String[] args) throws UnsupportedEncodingException {

        System.out.println("UTF-8:");
        printBytes("中".getBytes());

        System.out.println("unicode:");
        printBytes("中".getBytes("UTF-16BE"));
        //上面打印的unicode码是：01001110 00101101

        //要转为UTF-8 ,我们要知道它占用了几个数据位

        //数一数，去掉高位前面的0，是15个数据位

        //查上面的表可以知道，可以使用3字节及以上的编码方案

        //完整的unicode码被分段为：0100 111000 101101，分别拼接上头，如下：
        byte[] tmpb= {(byte)Integer.parseInt("1110"+"0100",2) //第一个字节是1110xxxx
                ,(byte)Integer.parseInt("10"+"111000",2)
                ,(byte)Integer.parseInt("10"+"101101",2)
        };

        //打印看看，应该没问题
        System.out.println(new String(tmpb,"UTF-8"));

        byte[] bs = {(byte)0xF0,(byte)0x9F,(byte)0x98,(byte)0x81};

    }

    public static void printBytes(byte[] bytes) {
        for (byte b : bytes) {
            System.out.print(Integer.toBinaryString(b & 0xFF));
            System.out.print(" ");
        }
        System.out.println();
    }


}
